PCI-PCMCIA smart card reader

ABSTRACT

A method and apparatus is disclosed for implementing an integrated video card and smart card reader. A single processor is used to perform both video and smart card reader functions. The processor simulates a PCI-to-PCMCIA detection logic scheme. An operating system, such as Windows, detects both a video card and a PCI-to-PCMCIA bridge. A smart card reader is attached to the integrated video card and smart card reader.

BACKGROUND OF THE INVENTION

[0001] 1. Technical Field

[0002] The invention relates to smart card readers. More particularly,the invention relates to an apparatus and to a family of methods thatintegrates a smart card reader into an existing PCI interface chip set.

[0003] 2. Description of the Prior Art

[0004] The use of secure smart cards that provide information specificto an individual is becoming more prevalent in a number of differenttypes of situations. Examples of such include electronic commerce,security access control and health care record maintenance.

[0005] Each system that employs smart cards contains two fundamentalcomponents, namely the smart cards themselves and an interface device,commonly known as a reader. The smart cards are carried by the users ofthe system, and include a memory that stores information that ispertinent to the user's interaction with the system. In an electroniccommerce system, for example, each smart card contains the balance in anaccount maintained by the user, as well as details of accounttransactions. More recently, the smart cards also includemicroprocessors, which provide for an increased level of security overthe information stored in the cards. The incorporation ofmicroprocessors into the cards also enhances their flexibility, forinstance by facilitating the storage of executable programs in the cardsthat can be used to provide expanded functionality.

[0006] The readers communicate with the cards in a secure manner toaccess the information stored therein. In one type of system, the cardis inserted into a slot in the reader, which brings electrical contactsin the reader into engagement with mating contacts on the exterior ofthe card. The engaged contacts enable a microcontroller in the reader tocommunicate with the memory and/or microprocessor in the card.Typically, the reader is connected to a peripheral device that isassociated with the particular type of system into which the reader isincorporated.

[0007] Desktop versions of smart card readers are used to verify aperson's identity before the person is allowed to use a computer.Typically, the smart card reader is contained in an external accessorybox module, connected to the computer through the non plug and playRS232 serial port, and using the RS232 protocol. The architecture ofthis reader is either a two or three chip solution, typically using theIntel 8048 or 8051 microprocessor. The setup is a complicated process,requiring the plugging in of the module to the serial port, theinstallation of drivers, and turning off and restarting the computer.What is needed is a plug-and-play solution for adding a smart cardreader.

[0008] Another version of a smart card reader employs a single chipsolution. This single chip firmware solution uses a non-standardinterface with a keyboard controller. The problem with this solution isthat it requires keyboard/firmware changes to make it work, which makesit difficult to support as an industry standard. What is needed is asmart card reader that integrates easily with a computer.

[0009] A smart card reader is also implemented through a PCI-to-PCMCIA(Personal Computer Memory Card International Association) host adapterand PCMCIA smart card reader. Currently computer operating systems (OS)support plug-and-play capabilities for PCI-to-PCMCIA adapters. An OSdetects PCMCIA smart card reader by using a detection logic scheme thatperiodically checks the registers used by the PCI-PCMCIA host adapter.An OS, such as Microsoft Windows, supports plug-and-play forPCI-to-PCMCIA bridge adapters. The problem with PCI-to-PCMCIA hostadapters is that they occupy a whole PCI slot and PCMCIA form factorsmart card reader is expensive. This requires computer motherboards tocontain an extra PCI slot. This results in increased costs. What isneeded is a device that can implement a smart card reader without usingan extra PCI slot.

SUMMARY OF THE INVENTION

[0010] The invention provides a plug-and-play smart card reader thateasily integrates another computer function, such as a video controller.The smart card/video controller has a processor with embedded functionsfor controlling both video and smart card functions. The smartcard/video controller responds to device detection queries in a fashionthat simulates a PCI-to-PCMCIA bridge and a video card. The result, inthe presently preferred embodiment of the invention, is a video andsmart card reader controller that uses the same PCI slot.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011]FIG. 1 is a diagram that illustrates the functional relationshipof a smart card reader and a video/smart card reader controlleraccording to the invention;

[0012]FIG. 2 is a diagram that illustrates an external view of a smartcard reader connected to a computer according to the invention; and

[0013]FIG. 3 is a diagram illustrating a processor having embeddedfunctions for managing both video and smart card reader I/O functionsaccording to the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

[0014]FIG. 1 is a diagram illustrating a smart card reader integratedwithin a video card (CARD) 110. The CARD 110 is attached to a computermotherboard through a PCI bus. The CARD processor contains embeddedsmart card reader functions 130, as well as video functions 120. TheCARD 110 has an external lead that connects to a smart card reader 140that can read smart cards 150. While Applicant has disclosed a PCI CARDherein, it will be appreciated by those skilled in the art that suchCARD readily encompasses any device/steps, that can be substitutedtherefore to effect a similar result as is achieved by the CARD,including, but not limited to, CARDS with such functions as networkcards, modems, video, memory devices, or core logic chipsets.

[0015]FIG. 2 illustrates an external view of a computer 200 with a smartcard reader 140 attached through a wire lead to the back of the CARD.

[0016] The PCI bus architecture incorporates its configurationinformation in each PCI device. That is, in the preferred embodiment, aconfiguration space of 256 bytes is provided for every PCI compatibleunit and every separate function in a multifunction unit. All PCIdevices must implement this configuration space. The configuration spaceconsists of configuration registers that provide a PCI based systeminformation about a PCI device, and allows a device to be configured foruse in a specific system.

[0017] The configuration space is divided into a predefined headerregion and a device dependent region. The predefined header regionincludes fields that uniquely identify the device and allow the deviceto be controlled generically. One piece of information that theconfiguration space header provides is a class code that identifies thefunction of the system. The configuration space also provides a headerfield, one bit of which indicates the presence of a multifunctional PCIdevice.

[0018] WINDOWS has a bus detection logic scheme that periodically checksthe predefined header region of the bus to see what device is connectedto the bus. Each region consists of a number of configuration registers.However, the detection logic scheme does not check all of theconfiguration registers. Thus, the CARD is designed to respond to thoseregisters that are checked by WINDOWS for a PCI-to-PCMCIA bridge,accordingly, WINDOWS detects both a video card and a PCI-to-PCMCIAdevice. The CARD does this by responding to WINDOWS queries withvariable responses to those registers similar to those responses thatwould be given by a dedicated PCI-to-PCMCIA bridge. Otherwise stated,WINDOWS detects a PCI-to-PCMCIA device that implements the entireconfiguration space. It is also contemplated that the PCMCIA bridgelogic may also be used with ISA, VL, and other buses.

[0019]FIG. 3 illustrates a function router 330 included within the CARDprocessor 310 to connect the input and output (I/O) of the video 340 andsmart card reader functions 350 to the PCI local bus 100. Typically, thefunction router 330 may be implemented with a multiplexer 320 such thatdata and/or control signals may be routed between the processor and I/Opath 340, 350.

[0020] The configuration protocol defined within the PCI local busspecification allows the processor to individually address each PCIlocal bus device using a physical selection signal that is part of thePCI bus signal definitions. The specification further assigns to theCARD, a range of processor memory addresses by which the CPUcommunicates with the CARD.

[0021] The CARD 110 serves to collect multiple PCI I/O using a singlePCI local bus connection. This arrangement is quite practical in that itallows for the evolution from larger physical components to more densephysical integration as components become smaller. Furthermore, thisarrangement exploits dense packaging of multiple I/O devices to connectan overall increased number of devices without adding more connectionson the PCI local bus or its backplane.

[0022] The function router 330 in the CARD 110 effectively replaces thetwo required PCI bus connections with a single PCI bus connection 100.To enable the processor 100 to select a particular I/O path within theCARD, the PCI bus specification configuration protocol appends afunction number that ranges in value from 0 to 7 to the deviceidentifier.

[0023] As mentioned, the PCI architecture allows for PCI devices withmore than one function. The CARD provides a configuration space for eachfunction implemented. That is, each function has its own set ofconfiguration space registers. The CARD has two configuration spaces,i.e. one for the video controller and one for the smart card reader. TheCARD typically, although not always, needs for more than one interruptpin. Respective multiple configuration spaces are necessary whenmultiple interrupt pins are required by the multifunction device.

[0024] It may be desired to package a function along with the smart cardfunctions separately and only have a PCI bus interface on one of thefunctions so that the other function(s) can be options and installed atthe manufacturer's or buyer's discretion. Such a configuration canreduce the cost associated with implementing a full PCI bus interfacefor each function if the other functions are attached through somenon-PCI bus interface to the primary function. Such a configuration alsoprovides the benefit, for example, that a system would only have toimplement desired function(s) and would save the cost associated withthe functions that were not needed or wanted. Additionally, the systemto which the multifunction device is coupled would have fewer loads onthe PCI bus if multiple functions are implemented.

[0025] The CARD is architecturally capable of incorporating up to eightdistinct functional elements within a single device that requires asingle slot on the PCI local bus. The role of the function router 330 isto facilitate the sharing of the single slot amongst multiple I/Ofunction incorporated within the CARD. In particular, duringconfiguration read and write protocols, the function router 330 uses thefunction number from this protocol to route the arguments of thisprotocol between the PCI local bus 100 and the associated processorfunctions.

[0026] Although the invention is described herein with reference to thepreferred embodiment, one skilled in the art will readily appreciatethat other applications may be substituted for those set forth hereinwithout departing from the spirit and scope of the present invention.Accordingly, the invention should only be limited by the claims includedbelow.

1. An apparatus for reading an electronic medium, comprising: anelectronic medium reader; and a computer card connected to saidelectronic medium reader, said computer card attached to a computerthrough a computer bus, said computer card capable of performingelectronic medium functions and at least one other computer function. 2.The apparatus of claim 1, wherein said electronic medium readercomprises: a base being profiled to have a receiving area; a contactreceiving area in communication with the receiving area; and at leastone contact disposed in the contact receiving area, each contact havinga leg passing through the base for electrical connection with a printedcircuit board.
 3. The apparatus of claim 1, wherein said electronicmedium comprises any of: a smart card, memory card, security device, orcombination thereof.
 4. The apparatus of claim 1, wherein said computerfunction comprises any of: networking, modem, video, memory, and corelogic chipset.
 5. The apparatus of claim 1, wherein said computer cardresponds to operating system identity checks with responses to simulatebus-to-PCMCIA bridge responses.
 6. The apparatus of claim 1, whereinsaid bus includes any of ISA, VL, PCI, and AGP.
 7. An apparatus forreading a smart card comprising: a computer; and a computer cardconnected to said computer through a bus, said computer card adapted torespond to an operating system identity check with a response tosimulate a bus-to-PCMCIA bridge response.
 8. A method for reading asmart card, comprising the steps of: reading a smart card with a smartcard reader; and performing smart card functions and at least one othercomputer function with a computer card connected to said smart cardreader, said computer card attached to a computer through a computerbus.
 9. The method of claim 8, wherein said smart card reader comprises:a base being profiled to have a card receiving area; a contact receivingarea in communication with the card receiving area; and at least onecontact disposed in the contact receiving area, each contact having aleg passing through the base for electrical connection with a printedcircuit board.
 10. The method of claim 8, wherein said computer functioncomprises any of: networking, modem, video, and memory.
 11. The methodof claim 8, wherein said computer card responds to operating systemidentity checks with responses to simulate bus to PCMCIA bridgeresponses.
 12. The method of claim 8, wherein said bus includes any ofISA, VL, PCI, and AGP.
 13. A method for reading a smart card comprisingthe steps of: connecting a computer card to a computer through a bus;connecting a smart card reader to said computer card; and responding toan operating system identity check with a response to simulate abus-to-PCMCIA bridge response.